W projekcie wykorzystany zostanie niezbalansowany zbiór danych “Adult”. Zbiór został stworzony przez Ronny’ego Kohavi i Barry’ego Beckera. Dane pochodzą z zasobów United States Census Bureau z 1994 roku. Zawierają one informacje dotyczące różnych cech osób, jak np. wiek, wykształcenie, stan cywilny, zawód, liczba godzin pracy w tygodniu i inne.
Głownym celem projektu będzie przeprowadzenie predykcji, czy dana osoba zarabia więcej niż 50 000 dolarów rocznie. Predykcja zostanie wykonana przy użyciu trzech różnych metod uczenia maszynowego, takich jak: algorytm SVM, drzewa decyzyjne oraz regresja logistyczna. Otrzymane wyniki zostaną ze sobą zestawione i poddane dokadnej analizie.
W kolejnej części wybrany zosatnie jeden z wcześniej utworzonych modeli, w oparciu o który przeprowadzona zostanie jego interpretowalność. Na koniec, w ramach podsumowania, zaprezentowane zostaną wnioski z całego projektu.
Liczba obserwacji: 48842
Liczba zmiennych: 15
Opis zmiennych:
age: wiek (zmienna ciągła)
workclass: klasa pracownicza, wskazuje sektor zatrudnienia danej osoby (zmienna kategoryczna)
fnlwgt: ostateczna waga; liczba określająca ilość osób, które próbka reprezentuje w populacji (zmienna ciągła)
education: poziom wykształcenia osoby (zmienna kategoryczna)
educational.num: liczbowy odpowiednik zmiennej ‘education’, przypisujący liczbową wartość poziomowi wykształcenia osoby (zmienna ciągła)
martial.status: stan cywilny (zmienna kategoryczna)
occupation: zawód (zmienna kategoryczna)
relationship: status relacji danej osoby w gospodarstwie domowym (zmienna kategoryczna)
race: rasa (zmienna kategoryczna)
gender: płeć (zmienna kategoryczna)
capital.gain: przychód kapitałowy (zmienna ciągła)
capital.loss: strata kapitałowa (zmienna ciągła)
hours.per.week: liczba godzin pracy w ciągu tygodnia (zmienna ciągła)
native.country: kraj pochodzenia (zmienna kategoryczna)
income: zmienna wynikowa, czy osoba zarabia więcej niż 50K dolarów rocznie (zmienna kategoryczna)
Brakujące wartości: zbiór danych zawiera brakujące wartości, które są oznaczone znakiem ‘?’.
Z uwagi na ograniczone zasoby urządzenia, na którym budowane są modele, zbiór musi zostać znacząco zmniejszony do liczby obserwacji równej 3000. Na rzecz projektu nowy zbiór zostanie wyselekcjonowany z danych osób urodzonych w Stanach Zjednoczonych. Zatem 1. krokiem będzie wyfiltrowanie danych dla zmiennej native.country == “United-States”, a następnie krok 2. to randomowy wybór 3000 obserwacji, przy jednoczesnym zachowaniu proporcji zbioru.
Wylosowane dane
## tibble [3,000 × 15] (S3: tbl_df/tbl/data.frame)
## $ age : int [1:3000] 30 57 27 29 31 38 21 18 39 20 ...
## $ workclass : chr [1:3000] "Private" "Private" "Private" "State-gov" ...
## $ fnlwgt : int [1:3000] 198953 375868 389713 95423 284889 255503 224640 110142 280570 361138 ...
## $ education : chr [1:3000] "Bachelors" "Masters" "Some-college" "Masters" ...
## $ educational.num: int [1:3000] 13 14 10 14 13 7 12 9 13 9 ...
## $ marital.status : chr [1:3000] "Never-married" "Married-civ-spouse" "Never-married" "Married-civ-spouse" ...
## $ occupation : chr [1:3000] "Exec-managerial" "Adm-clerical" "Sales" "Adm-clerical" ...
## $ relationship : chr [1:3000] "Not-in-family" "Husband" "Not-in-family" "Husband" ...
## $ race : chr [1:3000] "Black" "White" "White" "White" ...
## $ gender : chr [1:3000] "Female" "Male" "Male" "Male" ...
## $ capital.gain : int [1:3000] 0 0 0 0 0 0 0 0 0 0 ...
## $ capital.loss : int [1:3000] 0 0 0 0 0 0 0 0 0 0 ...
## $ hours.per.week : int [1:3000] 40 40 40 36 41 55 40 40 45 45 ...
## $ native.country : chr [1:3000] "United-States" "United-States" "United-States" "United-States" ...
## $ income : chr [1:3000] "<=50K" "<=50K" "<=50K" "<=50K" ...
Zbiór jest niezbalansowany. Widoczna jest zdecydowana przewaga obserwacji ze zmienną wynikową ‘<=50K’, oznaczającą zarobki mniejsze lub równe 50 000 dolarów rocznie, które stanowią aż 75.6% zbioru.
## [1] "Suma wierszy z brakującymi danymi: 159"
## [1] "Suma wierszy z wartością NA w workclass i occupation: 158"
Nowo utworzony zbiór zawiera niekompletne dane w 159 wierszach. Brakujące wartości wystepują dla 2 zmiennych:
workclass: 158 obserwacji,
occupation: 159 obserwacji.
Jak można zauważyć, istnieje duża zależność między udzieleniem informacji na pytanie o klasę pracowniczą oraz zawód. We wszystkich przypadkach, gdzie brakuje danych w zmiennej ‘occupation’, również występuje brak informacji dla zmiennej ‘workclass’.
Z uwagi na fakt, że są to zmienne kategoryczne, brakujące wartości zostaną uzupełnione przy wykorzystaniu mody z podziałem na grupy według płci.
Co więcej, ze zbioru wyeliminowane zostaną 3 kolumny:
‘fnlwgt’ - jest to liczba osób reprezentująca dany rekord. Na rzecz tego projektu, jeden wiersz, zostanie uznany za informacje zebrane na temat jednej osoby.
‘educational.num’ - jest ona liczbowym odpowiednikiem kolumny education
‘native.country’ - w ramach selekcji danych z pkt. 2.2 wyfiltrowane zostały wyłącznie rekordy z wartością “United-States”, a zatem zmienna ta nie będzie już istotna.
Z powyższej macierzy korelacji wynika, iż żadna z par zmiennych nie wykazuje silnej korelacji, co sugeruje, że nie ma silnych liniowych zależności między badanymi zmiennymi ilościowymi.
Regresja liniowa
##
## Call:
## lm(formula = income ~ age + hours.per.week + capital.gain + capital.loss,
## data = adult_clean_lm)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.83332 -0.25648 -0.15805 0.06594 1.02635
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.654e-01 3.173e-02 -8.365 <2e-16 ***
## age 5.942e-03 5.309e-04 11.194 <2e-16 ***
## hours.per.week 6.278e-03 5.881e-04 10.675 <2e-16 ***
## capital.gain 1.096e-05 9.898e-07 11.077 <2e-16 ***
## capital.loss 1.662e-04 1.934e-05 8.594 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.3975 on 2995 degrees of freedom
## Multiple R-squared: 0.1448, Adjusted R-squared: 0.1436
## F-statistic: 126.7 on 4 and 2995 DF, p-value: < 2.2e-16
Stworzona regresja liniowa pokazuje, że wszystkie zmienne ilościowe (‘age’, ‘hours.per.week’, ‘capital.gain’, ‘capital.loss’) są statystycznie znaczące jako predyktory zmiennej ‘income’ na poziomie 0.001, co jest bardzo silnym dowodem na ich związek z dochodem. Każdy dodatkowy rok (‘age’), każda dodatkowa przepracowana godzina tygodniowo (‘hours.per.week’), dodatkowy jednostkowy przyrost ‘capital.gain’, a także dodatkowy przyrost ‘capital.loss’ jest związany ze wzrostem dochodu (‘income’), przy założeniu stałości innych zmiennych.
Testy Chi-Squared
Z przeprowadzonych testów Chi-Squared dla zmiennych kategorycznych wynika, że wszystkie są czynnikami mającymi statystycznie istotny wpływ na poziom dochodów osób badanych. Niemniej jednak, nie oznacza to, że ich wpływ jest równie silny. Dla przykładu zmienna ‘marital.status’ (656.17492) ma wyższą wartość chi-kwadrat niż ‘race’ (28.355), co sugeruje, że stan cywilny może mieć silniejszy związek z dochodem.
Kolumny ‘Less_than_50K’ i ‘More_than_50K’ pokazują, które kategorie zmiennych niezależnych są najczęstsze wśród osób zarabiających poniżej oraz powyżej 50 000 dolarów rocznie. Wartości te wskazują na dominujące charakterystyki w każdej grupie dochodowej i tak na przykład, najwięcej osób zarabiających mniej niż 50 000 dolarów rocznie pracuje w sektorze prywatnym (‘Private’), najczęściej mają wykształcenie średnie (‘HS-grad’), najczęstszy status cywilny w tej grupie to Never-married, dominującym zawodem jest praca administracyjno-biurowa (‘Adm-clerical’), relationship - ‘Not-in-family’ oraz płeć - mężczyzna.
W grupie dochodowej powyżej 50 000 dolarów rocznie, również najczęściej osoby pracują w sektorze prywatnym, najczęściej mają wykształcenie licencjackie (‘Bachelors’), dominujący status cywilny to ‘Married-civ-spouse’, najczęstszym zawodem jest pozycja kierownicza lub zarządzająca (‘Exec-managerial’), jeżeli chodzi o relationship, tutaj dominuje kategoria ‘Husband’, a płcią przeważającą są jednakowo mężczyźni.
## [1] "Capital Gain równy 0: 2765"
## [1] "Capital Gain różny od 0: 235"
## [1] "Capital Gain różny od 0 i income > 50K: 153"
## [1] "Capital Loss równy 0: 2879"
## [1] "Capital Loss różny od 0: 121"
Większość obserwacji dla obu grup dochodowych (‘<=50K’ i ‘>50K’) ma ‘capital.gain’ oraz ‘capital.loss’ równy 0, co wskazuje na to, że dla większości osób z tego zbioru danych zysk kapitałowy nie jest czynnikiem. Może to sugerować, że większość osób nie zarabia na inwestycjach kapitałowych lub nie zgłasza zysków kapitałowych. Co jednak warto zauważyć, dla większości przypadków, kiedy ‘capital.gain’ jest większy od 0, dochód również wynosi więcej niż 50K dolarów rocznie, a zatem można wywnioskować, że zmienna ta będzie mieć wpływ na roczne zarobki danej osoby.
Pomimo iż dla ‘capital.gain’ oraz ‘capital.loss’ w obu grupach dochodowych występują outliery, nie zostaną one usunięte, ponieważ jak już zostało wcześniej zbadane zmienne te są istotne, a ich wartości będące różne od 0 wpływają na roczne dochody. Dlatego też, pozbycie się outlierów oznaczałoby pozbycie się istotnych informacji z wykorzystywanego zbioru. Ostatecznie kolumny ‘capital.loss’ oraz ‘capital.gain’ zostaną przekonwertowane na zmienne binarne, aby móc wyróżnić tych którzy zarabiają na inwestycjach kapitałowych od tych, którzy takowych nie posiadają.
Po przekształceniu:
Wykresy pudełkowe zmiennych ilościowych przed usunięciem outlierów
Z wykresów wynika, że wartości odstające znajdują się w obu zmiennych ilościowych. Więcej jest ich dla liczby przepracowanych godzin w ciągu tygodnia. W obu zmiennych zostaną one usunięte za pomocą metody kwantylowej 1,5⋅IQR.
Wykresy pudełkowe zmiennych ilościowych po usunięciu
outlierów
Zmienna income
##
## <=50K >50K
## 1622 566
Dane
## tibble [2,188 × 12] (S3: tbl_df/tbl/data.frame)
## $ age : num [1:2188] 30 57 27 29 31 21 18 39 20 41 ...
## $ workclass : Factor w/ 8 levels "Federal-gov",..: 4 4 4 7 4 2 4 4 4 4 ...
## $ education : Factor w/ 16 levels "10th","11th",..: 10 13 16 13 10 8 12 10 12 16 ...
## $ marital.status: Factor w/ 7 levels "Divorced","Married-AF-spouse",..: 5 3 5 3 7 5 5 3 5 5 ...
## $ occupation : Factor w/ 14 levels "Adm-clerical",..: 4 1 12 1 12 4 12 4 12 8 ...
## $ relationship : Factor w/ 6 levels "Husband","Not-in-family",..: 2 1 2 1 5 4 4 1 5 4 ...
## $ race : Factor w/ 5 levels "Amer-Indian-Eskimo",..: 3 5 5 5 5 5 5 5 5 5 ...
## $ gender : Factor w/ 2 levels "Female","Male": 1 2 2 2 1 1 1 2 2 2 ...
## $ capital.gain : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
## $ capital.loss : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
## $ hours.per.week: num [1:2188] 40 40 40 36 41 40 40 45 45 50 ...
## $ income : Factor w/ 2 levels "<=50K",">50K": 1 1 1 1 1 1 1 1 1 1 ...
Po przygotowaniu danych, obecny zbiór zawiera łącznie 2,188 obserwacji dla 12 zmiennych - 2 ilościowe i 10 kategorycznych. Z tego 1622 obserwacje należą do klasy ‘<=50K’ oraz 566 obserwacji do klasy ‘>50K’ zmiennej ‘income’. Oznacza to, że w dalszym ciągu występuje duża dysproporacja między klasami zmiennej wynikowej, klasa większościowa stanowi ok. 74% zbioru.
Podział na zbiór uczący i testowy będzie zgodny z proporcjami: 80% - dane treningowe oraz 20% - dane testowe. Ze względu na wysokie niezbalansowanie zbioru, dane treningowe zostaną poddane metodzie oversamplingu, a w dalszym kroku standaryzacji, która będzie niezbędna przy budowaniu modeli SVM w dalszej części projektu.
Statystyki dla zbioru uczącego
## age workclass education
## Min. :17.00 Private :1349 HS-grad :641
## 1st Qu.:28.00 Local-gov : 116 Some-college:362
## Median :37.00 Self-emp-not-inc: 95 Bachelors :313
## Mean :38.46 State-gov : 81 Masters : 84
## 3rd Qu.:47.00 Self-emp-inc : 55 Assoc-voc : 82
## Max. :77.00 Federal-gov : 53 Assoc-acdm : 60
## (Other) : 2 (Other) :209
## marital.status occupation relationship
## Divorced :268 Craft-repair :293 Husband :735
## Married-AF-spouse : 2 Adm-clerical :237 Not-in-family :469
## Married-civ-spouse :817 Exec-managerial:230 Other-relative: 34
## Married-spouse-absent: 11 Prof-specialty :214 Own-child :235
## Never-married :540 Sales :194 Unmarried :202
## Separated : 60 Other-service :138 Wife : 76
## Widowed : 53 (Other) :445
## race gender capital.gain capital.loss
## Amer-Indian-Eskimo: 20 Female: 550 0:1615 0:1687
## Asian-Pac-Islander: 16 Male :1201 1: 136 1: 64
## Black : 180
## Other : 8
## White :1527
##
##
## hours.per.week income
## Min. :33.00 <=50K:1298
## 1st Qu.:40.00 >50K : 453
## Median :40.00
## Mean :41.49
## 3rd Qu.:42.00
## Max. :52.00
##
Statystyki dla zbioru testowego
## age workclass education
## Min. :17.00 Private :329 HS-grad :153
## 1st Qu.:31.00 Self-emp-not-inc: 32 Some-college:108
## Median :39.00 Local-gov : 28 Bachelors : 79
## Mean :39.91 State-gov : 22 Masters : 25
## 3rd Qu.:49.00 Self-emp-inc : 18 Assoc-voc : 21
## Max. :76.00 Federal-gov : 8 11th : 10
## (Other) : 0 (Other) : 41
## marital.status occupation relationship
## Divorced : 63 Craft-repair :79 Husband :192
## Married-AF-spouse : 1 Adm-clerical :77 Not-in-family :114
## Married-civ-spouse :215 Exec-managerial :69 Other-relative: 10
## Married-spouse-absent: 1 Prof-specialty :44 Own-child : 50
## Never-married :128 Sales :44 Unmarried : 50
## Separated : 14 Machine-op-inspct:34 Wife : 21
## Widowed : 15 (Other) :90
## race gender capital.gain capital.loss
## Amer-Indian-Eskimo: 5 Female:136 0:399 0:412
## Asian-Pac-Islander: 5 Male :301 1: 38 1: 25
## Black : 42
## Other : 2
## White :383
##
##
## hours.per.week income
## Min. :33.00 <=50K:324
## 1st Qu.:40.00 >50K :113
## Median :40.00
## Mean :41.47
## 3rd Qu.:41.00
## Max. :52.00
##
Porównanie podsumowań dla zbiorów treningowego i testowego wykazuje spójność ich statystyk. Średni wiek w zbiorze treningowym wynosi około 38 lat, podczas gdy w zbiorze testowym to około 40 lat, co wskazuje na niewielką różnicę. Rozkłady godzin pracy tygodniowo są niemal identyczne, z medianą 40 godzin w obu zbiorach, a to sugeruje dobrze wyważony podział. Co więcej, proporcje płci i poziomy wykształcenia wydają się być podobne w obu grupach, z dominacją mężczyzn i najwyższym odsetkiem osób z wykształceniem średnim (HS-grad).
Oversampling
Po zastosowaniu oversamplingu dane treningowe zawierają równo po 1298 obserwacji dla klasy ‘>50K’ oraz ‘<=50K’.
## age workclass education
## Min. :17.00 Private :1933 HS-grad :873
## 1st Qu.:31.00 Local-gov : 179 Bachelors :553
## Median :40.00 Self-emp-not-inc: 157 Some-college:504
## Mean :40.35 State-gov : 121 Masters :178
## 3rd Qu.:49.00 Self-emp-inc : 115 Assoc-voc :111
## Max. :77.00 Federal-gov : 89 Assoc-acdm : 90
## (Other) : 2 (Other) :287
## marital.status occupation relationship
## Divorced : 316 Craft-repair :442 Husband :1408
## Married-AF-spouse : 2 Exec-managerial :428 Not-in-family : 538
## Married-civ-spouse :1563 Prof-specialty :389 Other-relative: 37
## Married-spouse-absent: 11 Sales :299 Own-child : 241
## Never-married : 577 Adm-clerical :278 Unmarried : 227
## Separated : 64 Machine-op-inspct:177 Wife : 145
## Widowed : 63 (Other) :583
## race gender capital.gain capital.loss
## Amer-Indian-Eskimo: 22 Female: 666 0:2281 0:2479
## Asian-Pac-Islander: 25 Male :1930 1: 315 1: 117
## Black : 221
## Other : 10
## White :2318
##
##
## hours.per.week income
## Min. :33.00 <=50K:1298
## 1st Qu.:40.00 >50K :1298
## Median :40.00
## Mean :41.75
## 3rd Qu.:45.00
## Max. :52.00
##
Standaryzacja
Statystyki danych treningowych po oversamplingu i standaryzacji:
## 'data.frame': 2596 obs. of 12 variables:
## $ age : num -0.684 -0.926 -0.765 -0.603 -1.654 ...
## $ workclass : Factor w/ 8 levels "Federal-gov",..: 4 4 7 4 4 4 4 4 1 4 ...
## $ education : Factor w/ 16 levels "10th","11th",..: 10 16 13 10 12 10 12 16 12 9 ...
## $ marital.status: Factor w/ 7 levels "Divorced","Married-AF-spouse",..: 5 5 3 7 5 3 5 5 5 3 ...
## $ occupation : Factor w/ 14 levels "Adm-clerical",..: 4 12 1 12 12 4 12 8 1 1 ...
## $ relationship : Factor w/ 6 levels "Husband","Not-in-family",..: 2 2 1 5 4 1 5 4 2 6 ...
## $ race : Factor w/ 5 levels "Amer-Indian-Eskimo",..: 3 5 5 5 5 5 5 5 5 5 ...
## $ gender : Factor w/ 2 levels "Female","Male": 1 2 2 1 1 2 2 2 1 1 ...
## $ capital.gain : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
## $ capital.loss : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 2 1 ...
## $ hours.per.week: num -0.383 -0.383 -1.414 -0.125 -0.383 ...
## $ income : Factor w/ 2 levels "<=50K",">50K": 1 1 1 1 1 1 1 1 1 1 ...
W tym rozdziale przedstawione zostaną procesy tworzenia trzech znanych modeli uczenia maszynowego: SVM, drzew decyzyjnych oraz regresji logistycznej. Każdy z tych modeli zostanie szczegółowo przeanalizowany pod kątem jego efektywności. Końcowa część rozdziału poświęcona bedzię porównaniu tych technik, aby wyjaśnić ich wzajemne mocne i słabe strony oraz wyłonić najefektywniejszą z nich.
W ramach wstępu do oceny efektywności modeli warto wspomnieć, że dla danego zbioru danych w kontekście predykcji zmiennej dochodowej ‘income’, większe znaczenie nabiera miara specyficzności, która skupia się na ograniczeniu liczby fałszywie pozytywnych wyników. Jest to kluczowe, ponieważ fałszywie pozytywny wynik w tym przypadku oznacza błędne zaklasyfikowanie osoby do grupy o dochodach ‘>50K’, kiedy faktycznie jej dochody są ‘<=50K’. Może to być szczególnie istotne w przypadkach, takich jak przyznawanie kredytów, gdzie przecenienie zdolności kredytowej osoby może prowadzić do ryzykownych decyzji finansowych.
Dla metody SVM zostanie dokonana analiza trzech modeli: SVM z jądrem liniowym, wielomianowym oraz radialnym. Dodatkowo, w każdym z tych modeli dostosowane zostaną hiperparametry, aby uzyskać optymalną wydajność każdego z nich.
Z wykresu można zauważyć, że w modelu z jądrem liniowym wraz ze zmianą wartości Cost w nieliniowy sposób zmieniały się wyniki Accuracy. Najlepszy został osiągnięty dla C = 0.6315789 i wyniósł 0.8014, czyli 80.14%.
Powyższy wykres przedstawia zależność Accuracy od trzech optymalizowanych hiperparametrów modelu SVM z jądrem wielomianowym. Najlepszy okazuje się model z konfiguracją: degree = 3, scale = 1 i C = 0.25, którego dokładność wyniosła 0.8477.
Wykres przedstwia wyniki dokladności dla różnych konfiguracji wartosci Sigma oraz Cost. Jak mozna zauważyc najlepsze wyniki (najwyższe Accuracy) osiągniete zostały dla Sigma = 1 i Cost = 2, Accuracy było wtedy równe 0.8733.
Modele SVM z jądrem wielomianowym i radialnym wykazują znacznie lepszą wydajność na zbiorze treningowym, sugerując wręcz potencjalne nadmierne dopasowanie do danych treningowych, ponieważ ich wyniki na zbiorze testowym są zdecydowanie gorsze. Z kolei, model liniowy ma niższą dokładność na zbiorze treningowym, jednakże wykazuje większą spójność w wynikach między danymi treningowymi a testowymi.
Zwracając uwagę na wyniki dla zbioru testowego, które są bardziej miarodajne dla oceny zdolności generalizacji modelu, wszystkie trzy modele mają podobną dokładność, lecz różnią się pod względem czułości i specyficzności. Model radialny ma znacznie gorszą specyficzność w porównaniu z innymi modelami, co wskazuje na to, że może on generować dużą liczbę fałszywie pozytywnych wyników. Z kolei model liniowy ma najniższą czułość spośród wszystkich modeli, co sugeruje, że nie jest on tak dobry w wykrywaniu osób z wyższymi dochodami.
Korzystając z metody drzew decyzyjnych, przeprowadzony zostanie eksperyment mający na celu ocenę wydajności prostego drzewa decyzyjnego w porównaniu z drzewem decyzyjnym wykorzystującym metodę baggingu.
Postać drzewa decyzyjnego
Prognoza na zbiorze uczącym:
## Confusion Matrix and Statistics
##
## Reference
## Prediction <=50K >50K
## <=50K 926 119
## >50K 372 1179
##
## Accuracy : 0.8109
## 95% CI : (0.7953, 0.8258)
## No Information Rate : 0.5
## P-Value [Acc > NIR] : < 2.2e-16
##
## Kappa : 0.6217
##
## Mcnemar's Test P-Value : < 2.2e-16
##
## Sensitivity : 0.9083
## Specificity : 0.7134
## Pos Pred Value : 0.7602
## Neg Pred Value : 0.8861
## Prevalence : 0.5000
## Detection Rate : 0.4542
## Detection Prevalence : 0.5975
## Balanced Accuracy : 0.8109
##
## 'Positive' Class : >50K
##
Prognoza na zbiorze testowym:
## Confusion Matrix and Statistics
##
## Reference
## Prediction <=50K >50K
## <=50K 216 11
## >50K 108 102
##
## Accuracy : 0.7277
## 95% CI : (0.6834, 0.7689)
## No Information Rate : 0.7414
## P-Value [Acc > NIR] : 0.7625
##
## Kappa : 0.445
##
## Mcnemar's Test P-Value : <2e-16
##
## Sensitivity : 0.9027
## Specificity : 0.6667
## Pos Pred Value : 0.4857
## Neg Pred Value : 0.9515
## Prevalence : 0.2586
## Detection Rate : 0.2334
## Detection Prevalence : 0.4805
## Balanced Accuracy : 0.7847
##
## 'Positive' Class : >50K
##
Podsumowanie wyników:
Zbiór uczący: Dokładność (Accuracy): 0.8109, Czułość (Sensitivity): 0.9083, Specyficzność (Specificity): 0.7134
Zbiór testowy: Dokładność (Accuracy): 0.7277, Czułość (Sensitivity): 0.9027, Specyficzność (Specificity): 0.6667
Z otrzymanych wyników można wywnioskować, że model ma tendencję do lepszego identyfikowania przypadków ‘>50K’ niż ‘<=50K’, biorąc pod uwagę wysoką czułość i niższą specyficzność. Z tego powodu, model ten może być bardziej przydatny w sytuacjach, gdzie ważniejsze jest zminimalizowanie liczby fałszywie negatywnych wyników, niż fałszywie pozytywnych.
Wykres ważności zmiennych
Powyższy wykres pokazuje, że stan cywilny (‘marital.status’) ma największy wpływ na przewidywaną zmienną ‘income’. Drugą najważniejszą zmienną jest ‘relationship’, co może odzwierciedlać fakt, że pozycja w gospodarstwie domowym często koreluje z obowiązkami finansowymi i zasobami. Pozostałe zmienne mają umiarkowaną ważność, również odgrywają ważną rolę w przewidywaniu dochodu, choć nie są tak dominujące jak status cywilny czy relacje rodzinne.
Wyniki na zbiorze uczącym
## NumTrees Accuracy Sensitivity Specificity
## 1 50 0.9953775 1 0.9907550
## 2 100 0.9957627 1 0.9915254
## 3 150 0.9957627 1 0.9915254
## 4 200 0.9957627 1 0.9915254
## 5 300 0.9957627 1 0.9915254
## 6 500 0.9957627 1 0.9915254
Dla zbioru uczącego, dokładność jest wyjątkowo wysoka, bo w granicach 99,5%, czułość wynosi 1 (100%) dla wszystkich modeli, niezależnie od liczby drzew. Specyficzność również jest bardzo wysoka, na poziomie około 0.99, co wskazuje na to, że model doskonale radzi sobie z przewidywaniem zarówno pozytywnych, jak i negatywnych klas na danych uczących. Takie wyniki mogą wskazywać na overfitting, oznaczający, że model został nadmiernie dopasowany do danych uczących.
Wyniki na zbiorze testowym
## NumTrees Accuracy Sensitivity Specificity
## 1 50 0.8169336 0.7256637 0.8487654
## 2 100 0.8032037 0.7256637 0.8302469
## 3 150 0.8169336 0.7522124 0.8395062
## 4 200 0.8146453 0.7345133 0.8425926
## 5 300 0.8169336 0.7433628 0.8425926
## 6 500 0.8169336 0.7345133 0.8456790
Na zbiorze testowym, wyniki są bardziej umiarkowane. Dokładność waha się między 80-82%, czułość między 72-74%, a specyficzność od ok. 83% do 84%. Wyniki te są znacznie niższe niż na zbiorze uczącym, co wskazuje na to, że model nie generalizuje tak dobrze na nowych danych. Jednakże, nadal utrzymują one rozsądny poziom, co sugeruje, że model baggingu z drzewami decyzyjnymi jest skuteczny w przewidywaniu na nieznanych danych, choć z pewnym spadkiem wydajności w porównaniu do danych treningowych.
Podsumowując, liczba drzew w modelu baggingu wydaje się mieć niewielki wpływ na wyniki, co widać po stabilności dokładności, czułości i specyficzności na zbiorze testowym w miarę zwiększania liczby drzew. To sugeruje, że dodawanie większej liczby drzew niekoniecznie przynosi znaczące korzyści po osiągnięciu pewnego progu.
Porównując powyższe modele, na podstawie otrzymanych wyników można stwierdzić, że drzewa decyzyjne z zastosowaniem baggingu są bardziej efektywne w przypadku predykcji wielkości rocznych dochodów badanych osób.
Model
##
## Call:
## glm(formula = income ~ ., family = "binomial", data = train_o)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -7.984e+00 1.581e+00 -5.050 4.42e-07 ***
## age 4.737e-02 5.797e-03 8.172 3.04e-16 ***
## workclassLocal-gov 6.557e-02 3.717e-01 0.176 0.859997
## workclassNever-worked -9.624e+00 2.400e+03 -0.004 0.996800
## workclassPrivate 1.198e-01 3.170e-01 0.378 0.705375
## workclassSelf-emp-inc 1.217e-01 4.270e-01 0.285 0.775605
## workclassSelf-emp-not-inc -4.913e-01 3.842e-01 -1.279 0.200981
## workclassState-gov -2.056e-01 4.150e-01 -0.495 0.620361
## workclassWithout-pay -1.080e+01 2.400e+03 -0.005 0.996409
## education11th -9.908e-01 6.883e-01 -1.439 0.150016
## education12th 2.559e+00 7.121e-01 3.594 0.000325 ***
## education1st-4th -1.576e+01 2.400e+03 -0.007 0.994758
## education5th-6th -1.409e+01 9.782e+02 -0.014 0.988510
## education7th-8th -2.615e+00 1.245e+00 -2.101 0.035620 *
## education9th -1.507e+01 4.796e+02 -0.031 0.974940
## educationAssoc-acdm 1.844e+00 5.606e-01 3.290 0.001002 **
## educationAssoc-voc 9.628e-01 5.316e-01 1.811 0.070137 .
## educationBachelors 2.167e+00 4.953e-01 4.375 1.21e-05 ***
## educationDoctorate 4.299e+00 9.597e-01 4.480 7.47e-06 ***
## educationHS-grad 9.748e-01 4.735e-01 2.059 0.039529 *
## educationMasters 2.786e+00 5.464e-01 5.099 3.42e-07 ***
## educationProf-school 2.992e+00 7.187e-01 4.163 3.14e-05 ***
## educationSome-college 1.321e+00 4.843e-01 2.727 0.006386 **
## marital.statusMarried-AF-spouse 1.786e+00 1.939e+00 0.921 0.356951
## marital.statusMarried-civ-spouse 2.433e+00 1.088e+00 2.237 0.025302 *
## marital.statusMarried-spouse-absent -1.454e+01 6.866e+02 -0.021 0.983109
## marital.statusNever-married -4.689e-01 2.657e-01 -1.765 0.077605 .
## marital.statusSeparated -6.669e-01 5.476e-01 -1.218 0.223296
## marital.statusWidowed -6.156e-01 4.151e-01 -1.483 0.138062
## occupationArmed-Forces -1.368e+01 2.400e+03 -0.006 0.995451
## occupationCraft-repair 6.020e-01 2.571e-01 2.342 0.019183 *
## occupationExec-managerial 1.130e+00 2.587e-01 4.369 1.25e-05 ***
## occupationFarming-fishing -2.905e-01 4.596e-01 -0.632 0.527401
## occupationHandlers-cleaners 1.794e-01 4.309e-01 0.416 0.677157
## occupationMachine-op-inspct 5.257e-01 3.025e-01 1.738 0.082273 .
## occupationOther-service 5.173e-01 3.398e-01 1.522 0.127924
## occupationPriv-house-serv -1.489e+01 1.671e+03 -0.009 0.992889
## occupationProf-specialty 1.150e+00 2.839e-01 4.053 5.06e-05 ***
## occupationProtective-serv 8.066e-02 4.397e-01 0.183 0.854464
## occupationSales 8.688e-01 2.683e-01 3.238 0.001203 **
## occupationTech-support 1.556e+00 3.399e-01 4.577 4.71e-06 ***
## occupationTransport-moving 2.268e-02 3.170e-01 0.072 0.942982
## relationshipNot-in-family 9.000e-02 1.091e+00 0.082 0.934279
## relationshipOther-relative -1.987e+00 8.466e-01 -2.347 0.018929 *
## relationshipOwn-child -1.031e+00 1.058e+00 -0.975 0.329742
## relationshipUnmarried 8.477e-03 1.116e+00 0.008 0.993942
## relationshipWife 6.025e-01 3.246e-01 1.856 0.063417 .
## raceAsian-Pac-Islander 2.222e+00 9.073e-01 2.449 0.014333 *
## raceBlack 9.827e-01 7.432e-01 1.322 0.186077
## raceOther 1.166e+00 1.174e+00 0.993 0.320533
## raceWhite 9.956e-01 7.160e-01 1.390 0.164389
## genderMale 4.187e-01 2.289e-01 1.829 0.067389 .
## capital.gain1 2.280e+00 2.300e-01 9.911 < 2e-16 ***
## capital.loss1 1.241e+00 2.981e-01 4.162 3.16e-05 ***
## hours.per.week 1.896e-02 1.474e-02 1.286 0.198351
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 3598.8 on 2595 degrees of freedom
## Residual deviance: 1962.3 on 2541 degrees of freedom
## AIC: 2072.3
##
## Number of Fisher Scoring iterations: 15
Wyniki modelu regresji logistycznej przedstawione w tabeli pokazują, że model dokonuje predykcji z dokładnością 76,4% na danych testowych. Oznacza to, że około 3 na 4 predykcje modelu co do dochodu są poprawne. Czułość wynosi 84,1%. To oznacza, że model dość dobrze identyfikuje rzeczywiste przypadki osób z dochodem ‘>50K’. Z kolei specyficzność jest równa 73,8%, co oznacza, że model nieco gorzej klasyfikuje przypadki, gdy osoby mają dochód ‘<=50K’.
Porównując wszystkie trzy miary między wynikami uzyskanymi na danych treningowych i testowych, widoczna jest niewielka różnica. Można zatem stwierdzić, że model jest dobrze dopasowany do danych i ma dobrą zdolność do generalizacji na nowe, niewidziane dotychczas przypadki.
Spośród wszystkich stworzonych modeli, wybrano trzy reprezentujące każdą z zastosowanych powyżej metod. W przypadku SVM oraz Decision Trees wybrano modele dające subiektywnie najlepsze wyniki. Dla SVM był to model z jądrem liniowym, natomiast dla Decision Trees - model z baggingiem oraz liczbą drzew równą 300. Każdy z tych modeli został oceniony w kontekście zadania predykcji rocznego dochodu powyżej 50 000 dolarów, z naciskiem na specyficzność jako kluczową metrykę.
Zestawienie wyników wybranych modeli na zbiorach testowych:
SVM linear, C = 0.6315789: Dokładność: 0.728, Czułość: 0.667, Specyficzność: 0.903
Decision trees z baggingiem, nTrees=300: Dokładność: 0.817, Czułość: 0.743, Specyficzność:0.843
Regresja logistyczna: Dokładność: 0.764, Czułość: 0.841, Specyficzność:0.738
W porównaniu wybranych modeli, każdy z nich prezentuje unikalny zestaw mocnych i słabych stron w kontekście predykcji rocznych dochodów badanych osób. Model SVM wyróżnia się najwyższą specyficznością (0.903), co czyni go efektywnym w eliminowaniu fałszywie pozytywnych wyników dla niższych dochodów, jednak jego ogólna dokładność (0.728) i czułość (0.667) są niższe niż u pozostałych. W przypadku drzew decyzyjnych, oferują one bardziej zrównoważony profil z dobrą dokładnością (0.817), czułością (0.743) i solidną specyficznością (0.843), co czyni je preferowanym wyborem, biorąc pod uwagę równowagę pomiędzy wszystkimi kluczowymi metrykami. Natomiast regresja logistyczna, mimo że ma najwyższą czułość (0.841), pozostaje w tyle ze względu na najniższą specyficzność (0.738) i przeciętną dokładność (0.764).
W efekcie, drzewa decyzyjne z baggingiem wydają się być najlepszym modelem dla tego zadania, zapewniając dość dobrą równowagę między dokładnością, czułością i specyficznością.
Utworzone profile ceteris-paribus pokazują, jak zmiana jednej zmiennej predykcyjnej wpływa na przewidywane prawdopodobieństwo wyniku, przy założeniu, że wszystkie inne zmienne pozostają stałe.
Dane wybranej obserwacji
age
Na powyższym wykresie dla zmiennej ‘age’ widać, że z wiekiem wzrasta przewidywane prawdopodobieństwo dochodu wyższego niż 50K dolarów rocznie. Linia jest wyraźnie nachylona w górę, co oznacza, że dla tej konkretnej obserwacji wzrost wieku koreluje z wyższym prawdopodobieństwem zakwalifikowania jej do klasy pozytywnej, czyli dochodu ‘>50K’. W tym przypadku wiek badanej osoby wynosił 68 lat, a odpowiadający temu punkt wskazuje na przewidywane prawdopodobieństwo równe 0.125.
hours.per.week
Dla zmiennej ‘hours.per.week’ podobnie jak w przypadku wieku, wraz ze wzrostem liczby godzin przepracowanych tygodniowo, wzrasta prawdopodobieństwo osiągnięcia dochodu >50K. Oznacza to, że jeśli zwiększa się wartość ‘hours.per.week’ dla tej obserwacji to prawdopodobieństwo zaklasyfikowania jej do klasy pozytywnej rośnie. Na wykresie w punkcie gdzie ‘hours.per.week’ wynosi 40, przewidywane prawdopodobieństwo jest równe 0.125.
workclass
Na wykresie badana jest clasa pracownicza (‘workclass’). Dla typu ‘Private’ prawdopodobieństwo jest najwyższe spośród wszystkich kategorii i wynosi 0.1249. Dwa najniższe prawdopodobieństwa przewidywane wykazują klasy ‘Never-worked’ (0.000008) oraz ‘Without-pay’ (0.000003), co wydaje się dość logiczne, ponieważ osoby, które nie zarabiają, nie bedą w stanie osiągnąć dochodów ‘>50K’.
occupation
Na wykresie dla zmiennej ‘occupation’ można zaobserwować, że zmiana kategorii zawodowej, wybranej obserwacji, na “Exec-managerial”,“Prof-specialty” lub “Tech-support” znacząco zwiększa przewidywane prawdopodobieństwo przekroczenia rocznych dochodów powyżej 50 tys. dolarów (nawet do 40%) w porównaniu do bazowej kategorii “Adm-clerical”, dla której prawdopodobieństwo wynosi 12.5%. Z kolei zmiana tej zmiennej na “Priv-house-serv” czy “Armed-Forces” wiązałaby się z istotnym spadkiem tego prawdopodobieństwa do granic 0%.
education
Na wykresie dla zmiennej ‘education’ widzimy, że wykształcenie ma znaczący wpływ na przewidywane prawdopodobieństwo przekroczenia rocznego dochodu powyżej 50K dolarów. “Some-college”, które jest wartością badanej obserwacji, znajduje się gdzieś pośrodku spektrum. Gdyby w danej obserwacji zmienna z wykształceniem przyjęła wartość “Doctorate”, przewidywane prawdopodobieństwo osiągnięcia dochodu >50K byłoby znacząco wyższe (73%). Z kolei, wykształcenie na poziomie szkoły podstawowej (“1st-4th”, “5th-6th”, “7th-8th”) wiązałoby się ze znacząco niższym prawdopodobieństwem.
race
Na wykresie PCP dla zmiennej ‘race’ przedstawiono, jak zmiana przynależności etnicznej może wpłynąć na przewidywane prawdopodobieństwo osiągnięcia rocznych dochodów powyżej 50K dolarów. Grupa ‘White’ jest punktem odniesienia. Gdyby dla tej próbki wartość ‘race’ została zmieniona na ‘Asian-Pac-Islander’ przewidywane prawdopodobieństwo wzrosłoby do ok. 33%. Natomiast najniższe możliwe prawdopodobieństwo otrzymano by przy zmianie ‘race’ na ‘Amer-Indian-Eskimo’ (5%).
marital.status
Na powyższym wykresie dla zmiennej ‘marital.status’ przedstawiono wpływ stanu cywilnego na przewidywane prawdopodobieństwo osiągnięcia dochodów ‘>50K’. Kategoria ‘Never-married’ jest punktem odniesienia. Zmiana statusu na ‘Married-civ-spouse’ znacząco zwiększyłaby przewidywane prawdopodobieństwo przekroczenia tego progu dochodowego (aż do 72%), podczas gdy statusy takie jak ‘Separated’ czy ‘Widowed’ dałyby niższe przewidywane prawdopodobieństwo w porównaniu z tym dla osób nigdy niezamężnych/nieżonatych.
relationship
Na tym wykresie analizowaną zmienną jest ‘relationship’, czyli informacja o stosunkach rodzinnych badanej osoby. Wykres pokazuje, że predykcja zarobków ‘>50K’ byłaby wyższa jedynie, gdy dana osoba byłaby żoną, wtedy przewidywane prawdopodobieństwo wzrosłoby do 19%. Najniższe z kolei, było by dla kategorii ‘Other-relative’ - ok. 2%.
capital.gain
Kolejna badana zmienna to ‘capital.gain’, czyli informacja o zyskach kapitałowych, gdzie 0 oznacza ich brak, a 1 ich obecność. Z wykresu ewidentnie wynika, że gdyby w danej próbce obecne były zyski, prawdopodobieństwo osiągnięcia dochodu ‘>50K’ byłoby wyższe aż o 46%.
capital.loss
W tym wypadku badaną zmienną jest ‘capital.loss’, czyli informacja o stratach kapitałowych, gdzie podobnie jak w przypadku ‘capital.gain’ 0 oznacza ich brak, a 1 ich obecność. Z wykresu wynika, że gdyby w dana osoba notowała jakieś straty to przewidywane prawdopodobieństwo osiągnięcia dochodu większego niż 50K dolarów rocznie byłoby wyższe aż o 21%. Jest to dość nietypowe, ponieważ intuicyjnie możnaby się było spodziewać, że jakakolwiek utrata pieniędzy spowoduje obniżenie rocznych dochodów.
gender
Na wykresie porównywana jest płeć męska z żeńską. Dla wybranej obserwacji, gdzie badana była kobietą przewidywane prawdopodobieństwo wyniosło 0.125, natomiast gdyby badana była mężczyzną, prawdopodobieństwo to wyniosłoby 0.178. To sugeruje, że w danym przypadku model przewiduje niższe prawdopodobieństwo dochodu ‘>50K’ dla kobiety, w porównaniu do mężczyzny, przy założeniu, że wszystkie inne zmienne pozostają niezmienione.
age
Z pierwszego wykresu zmiennej ‘age’, można wyczytać, że wzrost jej wartości jest związany ze wzrostem średniego przewidywanego prawdopodobieństwa osiągnięcia dochodów ‘>50K’. Na drugim wykresie przedstawiono jak zmienia się przewidywane prawdopodobieństwo w zależności od wieku dla dwóch grup płciowych. Obie linie (czerwona i niebieska) wykazują tendencję wzrostową, co sugeruje, że z wiekiem prawdopodobieństwo przewidywanego zdarzenia rośnie dla obu płci. Jednakże wzrost prawdopodobieństwa dla mężczyzn jest silniejszy, ponieważ niebieska linia ma bardziej stromy kąt nachylenia w porównaniu do czerwonej linii reprezentującej kobiety.
hours.per.week
W przypadku ‘hours.per.week’ również zauważalna jest pozytywna korelacja między przepracowanymi godzinami a wyższymi dochodami rocznymi. Oznacza to, że osoby pracujące wiecej godzin tygodniowo mają średnio większe przewidywane prawdopodobieństwo osiągnięcia dochodów ‘>50K’.
workclass
Wykres dla zmiennej ‘workclass’ pokazuje, że średnia predykcja dla klas pracy, takich jak ‘Never-worked’ (nigdy nie pracował) i ‘Without-pay’ (bez wynagrodzenia) ma najniższe prawdopodobieństwo osiągnięcia zarobków większych niż 50 tys. dolarów rocznie bliskie 0. W przeciwieństwie, dla innych klas pracy, takich jak ‘Local-gov’, ‘Private’ czy ‘Self-emp-inc’, model pokazuje wyższe przewidywane prawdopodobieństwo, w granicach 50%.
occupation
Powyższy wykres pokazuje, jak zmiana kategorii zawodu (‘occupation’) wpływa na przewidywania modelu. Pogrubiona linia wskazuje, że dla niektórych zawodów, takich jak ‘Armed-Forces’ (siły zbrojne) i ‘Priv-house-serv’ (prywatne usługi domowe), średnia predykcja spada do wartości bliskich 0, co sugeruje, że model przewiduje niskie prawdopodobieństwo zarobków większych niż 50K. Dla innych kategorii, takich jak ‘Exec-managerial’ (kierownictwo wykonawcze), ‘Prof-specialty’ (specjalności profesjonalne) czy ‘Tech-support’ (wsparcie techniczne), średnia predykcja jest znacznie wyższa (powyżej 50%).
education
Z wykresu zmiennej ‘education’ można wyczytać, że najwyższe średnie prawdopodobieństwo jest dla kategorii ‘Doctorate’, co wskazuje na to, że osoby z wykształcenie na poziomie doktora może być istotnym czynnikiem zwiększającym predykcje dochodu większego niż 50K w tym modelu. Najniższe z kolei jest dla edukacji na poziomie klas podstawowych ok. 0, co może być uwarunkowane faktem, że osoby z niższym wykształceniem zwykle mają trudności związane ze znalezieniem pracy, a tym bardziej pracy dobrze płatnej.
race
Powyższy wykres zmiennej ‘race’ pokazuje, że mieszkańcy wysp Azji i Pacyfiku (‘Asian-Pac-Islander’) mają najwyższe średnie prawdopodobieństwo zarobków ‘>50K’ (ok.63%), podczas gdy kategoria ‘Amer-Indian-Eskimo’ ma najniższą (ok.34%).
marital.status
Na kolejnym wykresie dla zmiennej ‘marital.status’ najwyższe przewidywane średnie prawdopodobieństwo wykazuje status “Married-civ-spouse” (małżeństwo cywilne), co sugeruje, że ten stan cywilny ma najsilniejszy pozytywny związek z przewidywanym wynikiem w modelu. Najniższe prawdopodobieństwo model przewidujedla osób, które nigdy nie były zamężne/zamężne (“Never-married”), ok. 0%.
relationship
Z wykresu zmiennej ‘relationship’ można wyczytać, że najwyższe średnie prawdopodobieństwo jest dla kategorii ‘Wife’, co wskazuje na to, że posiadanie statusu żony w gospodarstwie domowych może być istotnym czynnikiem zwiększającym prawdopodobieństwo osiągniecia dochodu >50K w tym modelu. Najniższe z kolei jest dla kategorii ‘Other-relative’, która zawiera wszystkie niewymienione w tym zbiorze pozycje w rodzinie, a wynosi ok.30%.
capital.loss
Wykres dotyczący ‘capital.loss’ pokazuje różnicę ok. 13% między średnim prawdopodobieństwem wyższych zarobków dla osób notujących straty kapitałowe, a tych których one nie dotyczą. Jednakże, jak się okazuje korzystniejsze jest notowanie strat, ponieważ szanse na wyższe dochody są wtedy większe.
capital.gain
Podobnie jak w przypadku ‘capital.loss’, dla zmiennej ‘capital.gain’ większe średnie prawdopodobieństwo dochodów ‘>50K’ mają osoby, które notują zyski kapitałowe. Wynosi ono ok. 68%, natomiast dla osób bez zysków jest równe ok. 40%.
gender
Wykres dla zmiennej ‘gender’ pokazuje, że średnia predykcja dla mężczyzn jest wyższa niż dla kobiet o ok.10%, co sugeruje, że według modelu mężczyźni mają wyższe średnie prawdopodobieństwo osiągnięcia dochodów wyżzych niż 50 tys. dolarów rocznie, w porównaniu do kobiet.
Dzięki takiem profilom rozkładu łatwiej można zrozumieć, które czynniki są najbardziej wpływowe na przewidywania modelu i jak każdy pojedynczy predyktor wpływa na prawdopodobieństwo końcowego wyniku.
Dane wybranej obserwacji
Poniższe wykresy przedstawiają wkład poszczególnych zmiennych w końcowe prawdopodobieństwo przewidziane przez stworzony model regresji logistycznej. Punktem wyjściowym jest wartość wyrazu wolnego (intercept), a każdy kolejny słupek pokazuje wpływ pojedynczej zmiennej na wynik. Zielone słupki zwiększają prawdopodobieństwo osiągnięcia dochodów ‘>50K’, natomiast czerowne je zmniejszają. Każdy model zawiera nieco inną kolejność zmiennych.
Dla powyższego wykresu prawdopodobieństwo osiągnięcia dochodów ‘>50K’ dla tej obserwacji jest dość wysokie i wynosi 0.842. W tym ustawieniu, zmienna capital.gain = ‘1’ wydaje się mieć największy pozytywny wpływ. Drugą najbardziej znaczącą zmienną z pozytywnym wpływem jest marital.status=‘Married-civ-spouse’. Z kolei zawód ‘Transport-moving’ ma znaczący negatywny wpływ, co pokazuje długi czerwony pasek na lewo i oznacza, że zawód w transporcie i logistyce (np. kierowca ciężarówki, operator wózka widłowego, itp.) według modelu statystycznie rzadziej wiąże się z wyższymi zarobkami przekraczającymi wspomnianą granicę dochodu. Natomiast zmienna gender=‘Male’ ma dodatni wpływ na predykcję modelu, co oznacza, że bycie mężczyzną zwiększa szanse przewidywania, że dana osoba zarabia więcej niż 50K dolarów rocznie. Jest to zgodne z wieloma analizami rynku pracy, które wskazują, że płeć może wpływać na zarobki, z mężczyznami często zarabiającymi więcej niż kobiety w wielu sektorach. Niemniej jednak, wpływ tej zmiennej nie jest tak znaczący jak niektórych innych.
Na tym wykresie, ‘capital.gain’ ponownie ma największy wpływ na wynik predykcji, jednak jest on o połowe mniejszy niż na wcześniejszym wykresie. Z kolei cecha ‘marital.status’ przybrała na ważności i jej pozytywny wpływ jest większy niż poprzednio. Niezmiennie zawód “Transport-moving” ma największy negatywny wpływ na końcowy wynik, jednak podobnie jak zmienne ‘age’ oraz ‘education’ jest on zdecydowanie niższy niż uwcześniej.
Powyższe wykresy również przedstawiają wpływ poszczególnych zmiennych na przewidywaną wartość modelu. Są to jednak uśrednione wartości udziałów przypisanych danej zmiennej ze wszystkich możliwych uporządkowań.
Na wykresach można zauważyć, że największy wkład ponownie ma zmienna ‘capital.gain’ = 1 (ok. 34%), co oznacza, że ma ona znaczący (pozytywny) wpływ na przewidywanie osiągnięcia dochodów ‘>50K’. Drugą zmienną znacząco zwiększającą prawdopodobieństwo predykcji dochodów ‘>50K’ jest zmienna ‘marital.status’ = ‘Married-civ-spouse’, ok. 15%.
Z tych jak i ze wcześniejszych wykresów można wyróżnić 3 zmienne, które mają znaczący negatywny wpływ na pozytywną predykcję dochodu, czyli zmniejszają szanse przekroczenia progu 50K. Są to: ‘occupation’, ‘education’ oraz ‘age’. Sumarycznie ich procentowy wkład wynosi ok. -18%.
Pozostałe zmienne mają zarówno pozytywny jak i negatywny wpływ, jednak ich wartości są bardzo niskie, ponieważ oscylują między 0-2%, a więc nie mają aż tak dużego znaczenia dla końcowej predykcji.
Celem tego projektu była predykcja zmiennej docelowej ‘income’, która może być interpretowana jako prawdopodobieństwo osiągnięcia przez jednostki poziomu dochodu większego niż 50 000 dolarów rocznie - klasa ‘>50K’. Projekt rozpoczął się od dokładnej analizy i przygotowania danych, obejmującej ocenę podstawowych statystyk, identyfikację i uzupełnienie brakujących danych, a także modyfikację zmiennych, aby ulepszyć ich przydatność prognostyczną. Dane zostały odpowiednio zbalansowane, co zapewniło solidną podstawę dla budowy modeli predykcyjnych. Następnie zbiór danych został podzielony na część uczącą i testową w proporcji 80:20, co umożliwiło weryfikację wydajności modeli na nieznanych dotąd przykładach.
W projekcie wykorzystano trzy metody uczenia maszynowego: algorytm SVM, drzewa decyzyjne oraz regresję logistyczną. Wszystkie stworzone modele zostały starannie ocenione pod kątem jakości klasyfikacji, przy czym najlepsze wyniki osiągnęło drzewo decyzyjne z zastosowaniem techniki baggingu, zapewniając odpowiednią równowagę między dokładnością (81.7%), czułością (75.2%) i specyficznością (83.9%). Niemniej jednak, pomimo że osiągnięte wyniki są obiecujące, istnieje nadal potencjał do dalszego udoskonalenia utworzonych modeli w celu zwiększenia ich skuteczności predykcyjnej.
W kolejnym kroku, w celu zrozumienia, jak model formułuje predykcje, przeprowadzono szczegółową analizę interpretowalności na modelu regresji logistycznej wykorzystując profile ceteris-paribus, wykresy częściowej zależności oraz wartości SHAP. Analiza ta pozwoliła na głębsze zrozumienie interakcji między cechami a przewidywaną zmienną ‘income’, podkreślając znaczenie takich zmiennych jak np. zyski kapitałowe, zawód, stan cywilny czy edukacja, oferując jednocześnie wgląd w to, jak poszczególne cechy wpływają na model w kontekście rzeczywistym.
Podsumowując, rezultaty projektu dostarczają nie tylko istotnych informacji dla tworzenia efektywnych modeli prognozujących, ale także zwracają uwagę na znaczenie zrozumiałej interpretacji modeli w aspekcie ich wykorzystania w uczeniu maszynowym.